using System;

namespace BesAsm.Emgaats.Core
{
  /// <summary>
  /// The available model states
  /// </summary>
  public enum ModelState
  {
    /// <summary>
    /// An empty but instantiated model object
    /// </summary>
    Null = 0,
    /// <summary>
    /// A model with a standard template applied, but has no usable data
    /// </summary>
    TemplateApplied,
    /// <summary>
    /// A model that has been traced for links and nodes
    /// </summary>
    HasNetwork,
    /// <summary>
    /// A model that, in addition to a network, also has Dscs
    /// </summary>
    HasDscs,
    /// <summary>
    /// A model that, in addition to a network, also has Sscs
    /// </summary>
    HasSscs,
    /// <summary>
    /// A model that has a network, Dscs, and Sscs
    /// </summary>
    FullyTraced,
    /// <summary>
    /// A model that has at least a storm specified
    /// </summary>
    Specified,
    /// <summary>
    /// A model that has all necessary calculations completed
    /// </summary>
    Assembled,
    /// <summary>
    /// A model that has a generated engine files
    /// </summary>
    Deployed,
    /// <summary>
    /// A model that has been run and now has output files
    /// </summary>
    Simulated,
    /// <summary>
    /// A model generated an error during build or while opening the model
    /// </summary>
    HasErrors
  }
}
